Automatic generation of dynamic time-slot capacity

ABSTRACT

A system including one or more processors and one or more non-transitory computer-readable media storing computing instructions that, when executed on the one or more processors, cause the one or more processors to perform certain acts. The acts can include generating, based on a trained machine learning model, one or more time-slot capacities for one or more pickup time slots at a physical store for a time period that has not yet occurred. The acts also can include, after the time period has occurred, determining when actual demand exceeded the one or more time-slot capacities to tune the trained machine learning model. Other embodiments are described.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Application No. 16/712,743,filed Dec. 12, 2019, which claims the benefit of U.S. ProvisionalApplication No. 62/799,213, filed Jan. 31, 2019. U.S. Application No.16/712,743 and U.S. Provisional Application No. 62/799,213 areincorporated herein by reference in their entirety.

TECHNICAL FIELD

This disclosure is related to systems and methods for automaticgeneration of dynamic time-slot capacity.

BACKGROUND

Some systems allow users to select a time slot to pick up an order at adesignated location. Often, a fixed number of time slots are allottedfor each period of time. When all the time slots for a period of timeare selected, the user may select a time slot for another period of timeor may instead choose to cancel the order.

BRIEF DESCRIPTION OF THE DRAWINGS

To facilitate further description of the embodiments, the followingdrawings are provided in which:

FIG. 1 illustrates a front elevational view of a computer system that issuitable for implementing various embodiments of the systems disclosedin FIGS. 3 and 5 ;

FIG. 2 illustrates a representative block diagram of an example of theelements included in the circuit boards inside a chassis of the computersystem of FIG. 1 ;

FIG. 3 illustrates a block diagram of a system that can be employed forautomatic generation of dynamic time-slot capacity, according to anembodiment;

FIG. 4 illustrates a flow chart for a method, according to anembodiment;

FIG. 5 illustrates a block diagram of a recurrent neural network thatincludes an LSTM cell;

FIG. 6 illustrates a block diagram of a portion of a recurrent neuralnetwork for time steps, showing details of the LSTM cell of FIG. 5 for atime step;

FIG. 7(a) illustrates a block diagram of the LSTM cell of FIG. 5 with afocus on a forget gate layer of the LSTM cell of FIG. 5 ;

FIG. 7(b) illustrates a block diagram of the LSTM cell of FIG. 5 with afocus on an input gate layer of the LSTM cell of FIG. 5 ;

FIG. 7(c) illustrates a block diagram of the LSTM cell of FIG. 5 with afocus on a cell state layer of the LSTM cell of FIG. 5 ;

FIG. 7(d) illustrates a block diagram of the LSTM cell of FIG. 5 with afocus on an output gate layer of the LSTM cell of FIG. 5 ; and

FIG. 8 illustrates a graph showing test results for automatic generationof dynamic time-slot capacity using data from a specific physical store.

For simplicity and clarity of illustration, the drawing figuresillustrate the general manner of construction, and descriptions anddetails of well-known features and techniques may be omitted to avoidunnecessarily obscuring the present disclosure. Additionally, elementsin the drawing figures are not necessarily drawn to scale. For example,the dimensions of some of the elements in the figures may be exaggeratedrelative to other elements to help improve understanding of embodimentsof the present disclosure. The same reference numerals in differentfigures denote the same elements.

The terms “first,” “second,” “third,” “fourth,” and the like in thedescription and in the claims, if any, are used for distinguishingbetween similar elements and not necessarily for describing a particularsequential or chronological order. It is to be understood that the termsso used are interchangeable under appropriate circumstances such thatthe embodiments described herein are, for example, capable of operationin sequences other than those illustrated or otherwise described herein.Furthermore, the terms “include,” and “have,” and any variationsthereof, are intended to cover a non-exclusive inclusion, such that aprocess, method, system, article, device, or apparatus that comprises alist of elements is not necessarily limited to those elements, but mayinclude other elements not expressly listed or inherent to such process,method, system, article, device, or apparatus.

The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,”“under,” and the like in the description and in the claims, if any, areused for descriptive purposes and not necessarily for describingpermanent relative positions. It is to be understood that the terms soused are interchangeable under appropriate circumstances such that theembodiments of the apparatus, methods, and/or articles of manufacturedescribed herein are, for example, capable of operation in otherorientations than those illustrated or otherwise described herein.

The terms “couple,” “coupled,” “couples,” “coupling,” and the likeshould be broadly understood and refer to connecting two or moreelements mechanically and/or otherwise. Two or more electrical elementsmay be electrically coupled together, but not be mechanically orotherwise coupled together. Coupling may be for any length of time,e.g., permanent or semi-permanent or only for an instant. “Electricalcoupling” and the like should be broadly understood and includeelectrical coupling of all types. The absence of the word “removably,”“removable,” and the like near the word “coupled,” and the like does notmean that the coupling, etc. in question is or is not removable.

As defined herein, two or more elements are “integral” if they arecomprised of the same piece of material. As defined herein, two or moreelements are “non-integral” if each is comprised of a different piece ofmaterial.

As defined herein, “approximately” can, in some embodiments, mean withinplus or minus ten percent of the stated value. In other embodiments,“approximately” can mean within plus or minus five percent of the statedvalue. In further embodiments, “approximately” can mean within plus orminus three percent of the stated value. In yet other embodiments,“approximately” can mean within plus or minus one percent of the statedvalue.

DESCRIPTION OF EXAMPLES OF EMBODIMENTS

Turning to the drawings, FIG. 1 illustrates an exemplary embodiment of acomputer system 100, all of which or a portion of which can be suitablefor (i) implementing part or all of one or more embodiments of thetechniques, methods, and systems and/or (ii) implementing and/oroperating part or all of one or more embodiments of the non-transitorycomputer readable media described herein. As an example, a different orseparate one of computer system 100 (and its internal components, or oneor more elements of computer system 100) can be suitable forimplementing part or all of the techniques described herein. Computersystem 100 can comprise chassis 102 containing one or more circuitboards (not shown), a Universal Serial Bus (USB) port 112, a CompactDisc Read-Only Memory (CD-ROM) and/or Digital Video Disc (DVD) drive116, and a hard drive 114. A representative block diagram of theelements included on the circuit boards inside chassis 102 is shown inFIG. 2 . A central processing unit (CPU) 210 in FIG. 2 is coupled to asystem bus 214 in FIG. 2 . In various embodiments, the architecture ofCPU 210 can be compliant with any of a variety of commerciallydistributed architecture families.

Continuing with FIG. 2 , system bus 214 also is coupled to memorystorage unit 208 that includes both read only memory (ROM) and randomaccess memory (RAM). Non-volatile portions of memory storage unit 208 orthe ROM can be encoded with a boot code sequence suitable for restoringcomputer system 100 (FIG. 1 ) to a functional state after a systemreset. In addition, memory storage unit 208 can include microcode suchas a Basic Input-Output System (BIOS). In some examples, the one or morememory storage units of the various embodiments disclosed herein caninclude memory storage unit 208, a USB-equipped electronic device (e.g.,an external memory storage unit (not shown) coupled to universal serialbus (USB) port 112 (FIGS. 1-2 )), hard drive 114 (FIGS. 1-2 ), and/orCD-ROM, DVD, Blu-Ray, or other suitable media, such as media configuredto be used in CD-ROM and/or DVD drive 116 (FIGS. 1-2 ). Non-volatile ornon-transitory memory storage unit(s) refer to the portions of thememory storage units(s) that are non-volatile memory and not atransitory signal. In the same or different examples, the one or morememory storage units of the various embodiments disclosed herein caninclude an operating system, which can be a software program thatmanages the hardware and software resources of a computer and/or acomputer network. The operating system can perform basic tasks such as,for example, controlling and allocating memory, prioritizing theprocessing of instructions, controlling input and output devices,facilitating networking, and managing files. Exemplary operating systemscan include one or more of the following: (i) Microsoft® Windows®operating system (OS) by Microsoft Corp. of Redmond, Washington, UnitedStates of America, (ii) Mac® OS X by Apple Inc. of Cupertino,California, United States of America, (iii) UNIX® OS, and (iv) Linux®OS. Further exemplary operating systems can comprise one of thefollowing: (i) the iOS® operating system by Apple Inc. of Cupertino,California, United States of America, (ii) the Blackberry® operatingsystem by Research In Motion (RIM) of Waterloo, Ontario, Canada, (iii)the WebOS operating system by LG Electronics of Seoul, South Korea, (iv)the Android™ operating system developed by Google, of Mountain View,California, United States of America, (v) the Windows Mobile™ operatingsystem by Microsoft Corp. of Redmond, Washington, United States ofAmerica, or (vi) the Symbian™ operating system by Accenture PLC ofDublin, Ireland.

As used herein, “processor” and/or “processing module” means any type ofcomputational circuit, such as but not limited to a microprocessor, amicrocontroller, a controller, a complex instruction set computing(CISC) microprocessor, a reduced instruction set computing (RISC)microprocessor, a very long instruction word (VLIW) microprocessor, agraphics processor, a digital signal processor, or any other type ofprocessor or processing circuit capable of performing the desiredfunctions. In some examples, the one or more processors of the variousembodiments disclosed herein can comprise CPU 210.

In the depicted embodiment of FIG. 2 , various I/O devices such as adisk controller 204, a graphics adapter 224, a video controller 202, akeyboard adapter 226, a mouse adapter 206, a network adapter 220, andother I/O devices 222 can be coupled to system bus 214. Keyboard adapter226 and mouse adapter 206 are coupled to a keyboard 104 (FIGS. 1-2 ) anda mouse 110 (FIGS. 1-2 ), respectively, of computer system 100 (FIG. 1). While graphics adapter 224 and video controller 202 are indicated asdistinct units in FIG. 2 , video controller 202 can be integrated intographics adapter 224, or vice versa in other embodiments. Videocontroller 202 is suitable for refreshing a monitor 106 (FIGS. 1-2 ) todisplay images on a screen 108 (FIG. 1 ) of computer system 100 (FIG. 1). Disk controller 204 can control hard drive 114 (FIGS. 1-2 ), USB port112 (FIGS. 1-2 ), and CD-ROM and/or DVD drive 116 (FIGS. 1-2 ). In otherembodiments, distinct units can be used to control each of these devicesseparately.

In some embodiments, network adapter 220 can comprise and/or beimplemented as a WNIC (wireless network interface controller) card (notshown) plugged or coupled to an expansion port (not shown) in computersystem 100 (FIG. 1 ). In other embodiments, the WNIC card can be awireless network card built into computer system 100 (FIG. 1 ). Awireless network adapter can be built into computer system 100 (FIG. 1 )by having wireless communication capabilities integrated into themotherboard chipset (not shown), or implemented via one or morededicated wireless communication chips (not shown), connected through aPCI (peripheral component interconnector) or a PCI express bus ofcomputer system 100 (FIG. 1 ) or USB port 112 (FIG. 1 ). In otherembodiments, network adapter 220 can comprise and/or be implemented as awired network interface controller card (not shown).

Although many other components of computer system 100 (FIG. 1 ) are notshown, such components and their interconnection are well known to thoseof ordinary skill in the art. Accordingly, further details concerningthe construction and composition of computer system 100 (FIG. 100 ) andthe circuit boards inside chassis 102 (FIG. 1 ) are not discussedherein.

When computer system 100 in FIG. 1 is running, program instructionsstored on a USB drive in USB port 112, on a CD-ROM or DVD in CD-ROMand/or DVD drive 116, on hard drive 114, or in memory storage unit 208(FIG. 2 ) are executed by CPU 210 (FIG. 2 ). A portion of the programinstructions, stored on these devices, can be suitable for carrying outall or at least part of the techniques described herein. In variousembodiments, computer system 100 can be reprogrammed with one or moremodules, system, applications, and/or databases, such as those describedherein, to convert a general purpose computer to a special purposecomputer. For purposes of illustration, programs and other executableprogram components are shown herein as discrete systems, although it isunderstood that such programs and components may reside at various timesin different storage components of computing device 100, and can beexecuted by CPU 210. Alternatively, or in addition to, the systems andprocedures described herein can be implemented in hardware, or acombination of hardware, software, and/or firmware. For example, one ormore application specific integrated circuits (ASICs) can be programmedto carry out one or more of the systems and procedures described herein.For example, one or more of the programs and/or executable programcomponents described herein can be implemented in one or more ASICs.

Although computer system 100 is illustrated as a desktop computer inFIG. 1 , there can be examples where computer system 100 may take adifferent form factor while still having functional elements similar tothose described for computer system 100. In some embodiments, computersystem 100 may comprise a single computer, a single server, or a clusteror collection of computers or servers, or a cloud of computers orservers. Typically, a cluster or collection of servers can be used whenthe demand on computer system 100 exceeds the reasonable capability of asingle server or computer. In certain embodiments, computer system 100may comprise a portable computer, such as a laptop computer. In certainother embodiments, computer system 100 may comprise a mobile device,such as a smartphone. In certain additional embodiments, computer system100 may comprise an embedded system.

Turning ahead in the drawings, FIG. 3 illustrates a block diagram of asystem 300 that can be employed for automatic generation of dynamictime-slot capacity, according to an embodiment. System 300 is merelyexemplary and embodiments of the system are not limited to theembodiments presented herein. The system can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In some embodiments, certain elements, modules, or systems ofsystem 300 can perform various procedures, processes, and/or activities.In other embodiments, the procedures, processes, and/or activities canbe performed by other suitable elements, modules, or systems of system300. System 300 can be implemented with hardware and/or software, asdescribed herein. In some embodiments, part or all of the hardwareand/or software can be conventional, while in these or otherembodiments, part or all of the hardware and/or software can becustomized (e.g., optimized) for implementing part or all of thefunctionality of system 300 described herein.

In many embodiments, system 300 can include an online grocery ordersystem 310 and/or a store system 361. Online grocery order system 310and/or store system 361 can each be a computer system, such as computersystem 100 (FIG. 1 ), as described above, and can each be a singlecomputer, a single server, or a cluster or collection of computers orservers, or a cloud of computers or servers. In another embodiment, asingle computer system can host online grocery order system 310 and/orstore system 361. Additional details regarding online grocery ordersystem 310 and/or store system 361 are described herein.

In some embodiments, online grocery order system 310 can be in datacommunication through Internet 330 with one or more user devices, suchas a user device 340. In some embodiments, user device 340 can be usedby users, such as a user 350. In many embodiments, online grocery ordersystem 310 can host one or more websites and/or mobile applicationservers. For example, online grocery order system 310 can host awebsite, or provide a server that interfaces with a mobile applicationon user device 340, which can allow users to browse and/or search foritems (e.g., products, grocery items), to add items to an electroniccart, to purchase items, and/or request grocery pickup, in addition toother suitable activities.

In some embodiments, an internal network that is not open to the publiccan be used for communications between online grocery order system 310and store system 361 within system 300. In these or other embodiments,operators and/or administrators of system 300 can manage system 300, theprocessor(s) of system 300, and/or the memory storage unit(s) of system300 using the input device(s) and/or display device(s) of system 300, orportions thereof in each case.

In certain embodiments, the user devices (e.g., user device 340) can bedesktop computers, laptop computers, a mobile device, and/or otherendpoint devices used by one or more users (e.g., user 350). A mobiledevice can refer to a portable electronic device (e.g., an electronicdevice easily conveyable by hand by a person of average size) with thecapability to present audio and/or visual data (e.g., text, images,videos, music, etc.). For example, a mobile device can include at leastone of a digital media player, a cellular telephone (e.g., asmartphone), a personal digital assistant, a handheld digital computerdevice (e.g., a tablet personal computer device), a laptop computerdevice (e.g., a notebook computer device, a netbook computer device), awearable user computer device, or another portable computer device withthe capability to present audio and/or visual data (e.g., images,videos, music, etc.). Thus, in many examples, a mobile device caninclude a volume and/or weight sufficiently small as to permit themobile device to be easily conveyable by hand. For examples, in someembodiments, a mobile device can occupy a volume of less than or equalto approximately 1790 cubic centimeters, 2434 cubic centimeters, 2876cubic centimeters, 4056 cubic centimeters, and/or 5752 cubiccentimeters. Further, in these embodiments, a mobile device can weighless than or equal to 15.6 Newtons, 17.8 Newtons, 22.3 Newtons, 31.2Newtons, and/or 44.5 Newtons.

Exemplary mobile devices can include (i) an iPod®, iPhone®, iTouch®,iPad®, MacBook® or similar product by Apple Inc. of Cupertino,California, United States of America, (ii) a Blackberry® or similarproduct by Research in Motion (RIM) of Waterloo, Ontario, Canada, (iii)a Lumia® or similar product by the Nokia Corporation of Keilaniemi,Espoo, Finland, and/or (iv) a Galaxy™ or similar product by the SamsungGroup of Samsung Town, Seoul, South Korea. Further, in the same ordifferent embodiments, a mobile device can include an electronic deviceconfigured to implement one or more of (i) the iPhone® operating systemby Apple Inc. of Cupertino, California, United States of America, (ii)the Blackberry® operating system by Research In Motion (RIM) ofWaterloo, Ontario, Canada, (iii) the Palm® operating system by Palm,Inc. of Sunnyvale, California, United States, (iv) the Android™operating system developed by the Open Handset Alliance, (v) the WindowsMobile™ operating system by Microsoft Corp. of Redmond, Washington,United States of America, or (vi) the Symbian™ operating system by NokiaCorp. of Keilaniemi, Espoo, Finland.

Further still, the term “wearable user computer device” as used hereincan refer to an electronic device with the capability to present audioand/or visual data (e.g., text, images, videos, music, etc.) that isconfigured to be worn by a user and/or mountable (e.g., fixed) on theuser of the wearable user computer device (e.g., sometimes under or overclothing; and/or sometimes integrated with and/or as clothing and/oranother accessory, such as, for example, a hat, eyeglasses, a wristwatch, shoes, etc.). In many examples, a wearable user computer devicecan include a mobile device, and vice versa. However, a wearable usercomputer device does not necessarily include a mobile device, and viceversa.

In specific examples, a wearable user computer device can include a headmountable wearable user computer device (e.g., one or more headmountable displays, one or more eyeglasses, one or more contact lenses,one or more retinal displays, etc.) or a limb mountable wearable usercomputer device (e.g., a smart watch). In these examples, a headmountable wearable user computer device can be mountable in closeproximity to one or both eyes of a user of the head mountable wearableuser computer device and/or vectored in alignment with a field of viewof the user.

In more specific examples, a head mountable wearable user computerdevice can include (i) Google Glass™ product or a similar product byGoogle Inc. of Menlo Park, California, United States of America; (ii)the Eye Tap™ product, the Laser Eye Tap™ product, or a similar productby ePI Lab of Toronto, Ontario, Canada, and/or (iii) the Raptyr™product, the STAR 1200™ product, the Vuzix Smart Glasses M100™ product,or a similar product by Vuzix Corporation of Rochester, New York, UnitedStates of America. In other specific examples, a head mountable wearableuser computer device can include the Virtual Retinal Display™ product,or similar product by the University of Washington of Seattle,Washington, United States of America. Meanwhile, in further specificexamples, a limb mountable wearable user computer device can include theiWatch™ product, or similar product by Apple Inc. of Cupertino,California, United States of America, the Galaxy Gear or similar productof Samsung Group of Samsung Town, Seoul, South Korea, the Moto 360product or similar product of Motorola of Schaumburg, Illinois, UnitedStates of America, and/or the Zip™ product, One™ product, Flex™ product,Charge™ product, Surge™ product, or similar product by Fitbit Inc. ofSan Francisco, California, United States of America.

In many embodiments, online grocery order system 310 and/or store system361 can each include one or more input devices (e.g., one or morekeyboards, one or more keypads, one or more pointing devices such as acomputer mouse or computer mice, one or more touchscreen displays, amicrophone, etc.), and/or can each include one or more display devices(e.g., one or more monitors, one or more touch screen displays,projectors, etc.). In these or other embodiments, one or more of theinput device(s) can be similar or identical to keyboard 104 (FIG. 1 )and/or a mouse 110 (FIG. 1 ). Further, one or more of the displaydevice(s) can be similar or identical to monitor 106 (FIG. 1 ) and/orscreen 108 (FIG. 1 ). The input device(s) and the display device(s) canbe coupled to online grocery order system 310 and/or store system 361 ina wired manner and/or a wireless manner, and the coupling can be directand/or indirect, as well as locally and/or remotely. As an example of anindirect manner (which may or may not also be a remote manner), akeyboard-video-mouse (KVM) switch can be used to couple the inputdevice(s) and the display device(s) to the processor(s) and/or thememory storage unit(s). In some embodiments, the KVM switch also can bepart of online grocery order system 310 and/or store system 361. In asimilar manner, the processors and/or the non-transitorycomputer-readable media can be local and/or remote to each other.

Meanwhile, in many embodiments, online grocery order system 310 and/orstore system 361 also can be configured to communicate with and/orinclude one or more databases. The one or more databases can include aproduct database that contains information about products, items, orSKUs (stock keeping units), for example, among other data as describedherein, such as described herein in further detail. The one or moredatabases can be stored on one or more memory storage units (e.g.,non-transitory computer readable media), which can be similar oridentical to the one or more memory storage units (e.g., non-transitorycomputer readable media) described above with respect to computer system100 (FIG. 1 ). Also, in some embodiments, for any particular database ofthe one or more databases, that particular database can be stored on asingle memory storage unit or the contents of that particular databasecan be spread across multiple ones of the memory storage units storingthe one or more databases, depending on the size of the particulardatabase and/or the storage capacity of the memory storage units.

The one or more databases can each include a structured (e.g., indexed)collection of data and can be managed by any suitable databasemanagement systems configured to define, create, query, organize,update, and manage database(s). Exemplary database management systemscan include MySQL (Structured Query Language) Database, PostgreSQLDatabase, Microsoft SQL Server Database, Oracle Database, SAP (Systems,Applications, & Products) Database, and IBM DB2 Database.

Meanwhile, communication between online grocery order system 310, storesystem 361, and/or the one or more databases can be implemented usingany suitable manner of wired and/or wireless communication. Accordingly,system 300 can include any software and/or hardware componentsconfigured to implement the wired and/or wireless communication.Further, the wired and/or wireless communication can be implementedusing any one or any combination of wired and/or wireless communicationnetwork topologies (e.g., ring, line, tree, bus, mesh, star, daisychain, hybrid, etc.) and/or protocols (e.g., personal area network (PAN)protocol(s), local area network (LAN) protocol(s), wide area network(WAN) protocol(s), cellular network protocol(s), powerline networkprotocol(s), etc.). Exemplary PAN protocol(s) can include Bluetooth,Zigbee, Wireless Universal Serial Bus (USB), Z-Wave, etc.; exemplary LANand/or WAN protocol(s) can include Institute of Electrical andElectronic Engineers (IEEE) 802.3 (also known as Ethernet), IEEE 802.11(also known as WiFi), etc.; and exemplary wireless cellular networkprotocol(s) can include Global System for Mobile Communications (GSM),General Packet Radio Service (GPRS), Code Division Multiple Access(CDMA), Evolution-Data Optimized (EV-DO), Enhanced Data Rates for GSMEvolution (EDGE), Universal Mobile Telecommunications System (UMTS),Digital Enhanced Cordless Telecommunications (DECT), Digital AMPS(IS-136/Time Division Multiple Access (TDMA)), Integrated DigitalEnhanced Network (iDEN), Evolved High-Speed Packet Access (HSPA+),Long-Term Evolution (LTE), WiMAX, etc. The specific communicationsoftware and/or hardware implemented can depend on the networktopologies and/or protocols implemented, and vice versa. In manyembodiments, exemplary communication hardware can include wiredcommunication hardware including, for example, one or more data buses,such as, for example, universal serial bus(es), one or more networkingcables, such as, for example, coaxial cable(s), optical fiber cable(s),and/or twisted pair cable(s), any other suitable data cable, etc.Further exemplary communication hardware can include wirelesscommunication hardware including, for example, one or more radiotransceivers, one or more infrared transceivers, etc. Additionalexemplary communication hardware can include one or more networkingcomponents (e.g., modulator-demodulator components, gateway components,etc.).

In several embodiments, online grocery order system 310 can be in datacommunication with multiple store systems, which can include storesystem 361. In several embodiments, each store system (e.g., 361) can belocated in a different physical store, such as a physical store 360. Inmany embodiments, the physical stores (e.g., 360) each can be abrick-and-mortar store that is associated (e.g., operated by a commonbusiness entity or entities under common control) with online groceryorder system 310. In a number of embodiments, physical store 360 can bea grocery store or a larger store (e.g., a super store) that include agrocery store or grocery department. In other embodiments, physicalstore 360 can be a department store or other retail store that does notsell groceries. In many embodiments, online grocery order system 310 canallow a user (e.g., 350) to order items that are sold at physical store360, and allow the user (e.g., 350) to select a time slot in the future,such as later in the day, to pick up the items in the order fromphysical store 360. In some embodiments, store system 361 can be adistributed system that includes one or more systems in each of thephysical stores (e.g., 360). In other embodiments, store system 361 canbe a centralized system that communicates with systems in the physicalstores (e.g., 360).

In many embodiments, online grocery order system 310 can include acommunication system 311, an order system 312, a tracking system 313, ademand projection system 314, and/or a capacity determination system315. In several embodiments, store system 361 can include a grocerypickup system 362. In many embodiments, the systems of online groceryorder system 310 and/or store system 361 can be modules of computinginstructions (e.g., software modules) stored at non-transitory computerreadable media that operate on one or more processors. In otherembodiments, the systems of online grocery order system 310 and/or storesystem 361 can be implemented in hardware. Online grocery order system310 and/or store system 361 each can be a computer system, such ascomputer system 100 (FIG. 1 ), as described above, and can be a singlecomputer, a single server, or a cluster or collection of computers orservers, or a cloud of computers or servers. In another embodiment, asingle computer system can host online grocery order system 310 and/orstore system 361. Additional details regarding online grocery ordersystem 310 and/or store system 361 and the components thereof aredescribed herein.

In several embodiments, online grocery order system 310 can receive anorder for pickup from a user (e.g., 350), such as by using order system312 of online grocery order system 310. In some embodiments, onlinegrocery order system 310 can allow user 350 to select a pickup time slot(e.g., an hour-long window of time) during which the user plans to pickup the order. For example, physical store 360 can allow pickup between 8am and 8 pm, and can partition these hours into one-hour pickup timeslots. Other lengths of time slots (e.g., ten minutes, twenty minutes,half hour, forty minutes, 1.5 hours, 2 hours, etc.) can be used in otherexamples. Physical store 360 can allow a certain number of pickupsduring each pickup time slot to be scheduled. For example, for a 10 am –11 am pickup time slot, the maximum number of pickups that can bescheduled can be set to 8, such that once 8 customers have scheduled apickup for the 10 am – 11 am pickup time slot, the 10 am – 11 am pickuptime slot will no longer be an available pickup time slot for additionalcustomers trying to schedule a pickup. This maximum number of pickupsallowed for a time slot can be referred to as a “time-slot capacity,” orsimply “capacity.” The number of pickups actually scheduled to a timeslot can be referred to as the “demand” or “actual demand” for the timeslot.

In some approaches, the time-slot capacity could be a predeterminednumber of slots that was used for all pickup time slots. For example,each time slot of the day could have a time-slot capacity of 8. In otherapproaches, the time-slot capacity could be set to a higher numberduring certain times, such as time slots from 3 pm to 7 pm. In stillother approaches, the time-slot capacity could be adjusting usinghard-coded business rules that increase or decrease the capacity for aparticular time slot if certain conditions were satisfied over time. Forexample, the capacity for a time slot could be increased if demand forthe time slot on average, or for a certain number of occurrences, meetsor exceeds a certain predetermined percentage (e.g., 80%, 85%, 90%, 95%,100%) of the capacity for a predetermined amount of time (e.g., oneweek, two weeks, three weeks, four weeks, etc.). For example, if thedemand, on average for a particular time slot, meets or exceeds 85% ofthe capacity for two weeks, the capacity for that particular time slotcan be increased. As another example, if the demand for a time slotmeets 100% of the capacity on at least three occasions in a one-weekperiod, the capacity for the time slot can be increased. Similarly, thecapacity for a time slot could be decreased if demand for the time sloton average, or for a certain number of occurrences, falls below acertain predetermined percentage (e.g., 50%, 55%, 60%, 65%) of thecapacity for a predetermined amount of time (e.g., one week, two weeks,three weeks, four weeks, etc.).

Each physical store (e.g., 360) has limited resources to pick anddispense orders. For example, a store can have a certain number ofemployees scheduled each hour to pick and/or dispense orders.Accordingly, a time-slot capacity can be set for each time slot, suchthat the number of scheduled pickups for each time slot can be fulfilledwith the available resources. If the demand for a time slot exceedscapacity, some of the customers that were unable to schedule a pickupfor that time slot can reschedule for another pickup time slot. However,many customers will not schedule for another pickup time slot, but willinstead choose to shop at a competitor, who may or may not offer pickupservices. During a two-week time frame at 2,127 that offered grocerypickup, the total number of one-hour pickup time slots across the storeswas 298,351. Of these time slots, approximately 96,000 of them werefully booked, meaning that the actual demand met or exceeded thecapacity about 32% of the time. In these fully booked time slots, thedemand was likely higher than the capacity for at least some of the timeslots, but the demand above the capacity is unknown, because once thetime slot was fully booked, the customers were not presented the optionof selecting that fully booked time slot. If the demand, on average,exceeded the capacity by one order per time slot, and the averagerevenue per order was $108, the loss of sales in the two-week periodcould have been $10,368,000. Accordingly, setting the time-slot capacityabove the demand can advantageously allow additional sales revenue.

However, setting the time-slot capacity too high above the demand canwaste resources. The amount of resources to meet the demand can bescheduled before the actual demand is known. For example, if thetime-slot capacity is set to a certain amount, such as 20, for a timeslot, the physical store can schedule a certain number of employees towork in picking and dispensing orders to accommodate this time-slotcapacity. Work schedules for employees are often planned at least a weekin advance. If the actual demand is far below the time-slot capacitythat was set, these the time these employees are available but unusedduring the time slot can be wasted. Accordingly, selecting anappropriate time-slot capacity can beneficially allow an increase insales revenue while simultaneously preventing wasted resources. In manyembodiments, the techniques described herein can be used to dynamicallyset the time-slot capacity for each time slot in a manner that bothincreases sales revenue and prevents wasted resources.

After the order has been received at online grocery order system 310,the order can be sent to store system 361, to allow associates atphysical store 360 to pick the items in the order and assemble the orderfor pickup. Once the order has been picked and assembled, store system361 can notify online grocery order system 310. In many embodiments,online grocery order system 310 can send a message to user 350, such asby using communication system 311 of online grocery order system 310, toallow user 350 to check-in, which indicates that user 350 is starting totravel to physical store 360 to pick up the order.

In many embodiments, once user 350 has checked in using user device 340,online grocery order system can track the location of user device 340and user 350, such as by using a tracking system 313 of online groceryorder system 310. When a user (e.g., 350) arrives at physical store 360,the user can park a vehicle of the user in one of pickup lanes 365 atphysical store 360. In several embodiments, physical store 360 caninclude one or more pickup lanes 365.

Actual demand for pickup time slots is dynamic and variable. The reasonsfor variations in demand are numerous, and many of these reasons arehard for the physical store to affect or control. Accordingly, it can bedifficult to predict what the actual demand for pickup time slots willbe, which can make conventional subjective estimates unreliable. Thisdifficulty in predicting demand can lead to time-slot capacities thatare too low for some of the time slots and/or too high for other timeslots, which can result in less sales revenue and/or wasted resources.

In many embodiments, users can order delivery orders, which can betreated by physical store 360 similarly to customer pickup orders. Fordelivery orders, a user (e.g., 350) can place an order, and the ordercan be picked up by a delivery driver, which can deliver the order tothe user (e.g., at a residence of the user). The pickup process can betreated similarly in a delivery order to that of a pickup order, as thedelivery driver can check-in and come to pick lanes 365 of physicalstore 360 for the order to be dispensed.

Turning ahead in the drawings, FIG. 4 illustrates a flow chart for amethod 400, according to an embodiment. In some embodiments, method 400can be a method of automatic generation of dynamic time-slot capacity.Method 400 is merely exemplary and is not limited to the embodimentspresented herein. Method 400 can be employed in many differentembodiments or examples not specifically depicted or described herein.In some embodiments, the procedures, the processes, and/or theactivities of method 400 can be performed in the order presented. Inother embodiments, the procedures, the processes, and/or the activitiesof method 400 can be performed in any suitable order. In still otherembodiments, one or more of the procedures, the processes, and/or theactivities of method 400 can be combined or skipped.

In many embodiments, online grocery order system 310 (FIG. 3 ) and/orstore system 361 (FIG. 3 ) can be suitable to perform method 400 and/orone or more of the activities of method 400. In these or otherembodiments, one or more of the activities of method 400 can beimplemented as one or more computing instructions configured to run atone or more processors and configured to be stored at one or morenon-transitory computer readable media. Such non-transitory computerreadable media can be part of a computer system such as online groceryorder system 310 (FIG. 3 ) and/or store system 361 (FIG. 3 ). Theprocessor(s) can be similar or identical to the processor(s) describedabove with respect to computer system 100 (FIG. 1 ).

In some embodiments, method 400 and other blocks in method 400 caninclude using a distributed network including distributed memoryarchitecture to perform the associated activity. This distributedarchitecture can reduce the impact on the network and system resourcesto reduce congestion in bottlenecks while still allowing data to beaccessible from a central location.

Referring to FIG. 4 , method 400 can include a block 405 of obtaininghistorical demand data for pickup time slots at a physical store for afirst time period. The physical store can be similar or identical tophysical store 360 (FIG. 3 ). In some embodiments, the historical demanddata can be used as training data in block 410, described below. In anumber of embodiments, the first time period can be approximately fourweeks. In other embodiments, the first time period can be two weeks,three weeks, one month, five weeks, six weeks, seven weeks, eight weeks,two months, nine weeks, ten weeks, eleven weeks, twelve weeks, threemonths, or another suitable amount of time for training data. In manyembodiments, the demand for a pickup time slot in the historical demanddata can be the number of scheduled pickups for the pickup time slot. Asdescribed above, the actual demand can exceed the number of scheduledpickups when the number of scheduled pickups was the same as thetime-slot capacity (e.g., the time slot was fully booked). In otherembodiments, the demand for a pickup time slot in the historical demanddata can represent actual demand. For example, in some embodiments, theorder system (e.g., 312 (FIG. 3 ))

In several embodiments, method 400 also can include a block 410 oftraining a machine learning model to create a trained model based on thehistorical demand data for the pickup time slots over the first timeperiod. In a many embodiments, the machine learning model can include arecurrent neural network model that includes a long short-term memory(LSTM) cell. In many embodiments, the recurrent neural network can be asuitable conventional recurrent neural network, and/or the LSTM cell canbe a suitable conventional LSTM cell. In other embodiments, the machinelearning model can be another suitable machine learning approach.

Turning ahead in the drawings, FIG. 5 illustrates a block diagram of arecurrent neural network 500 that includes an LSTM cell (denoted “A”).Recurrent neural network 500 is merely exemplary and embodiments of therecurrent neural network are not limited to the embodiments presentedherein. The recurrent neural network model can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In many embodiments, recurrent neural network model 500 caninclude time steps t, and output from each step can become input at thenext step. Thus, the examples shown on each side of the equal sign inFIG. 5 are different representations of the same recurrent neuralnetwork, but the example on the left is collapsed for all times t, andthe example on the right is expanded to show each time t. In severalembodiments, recurrent neural network 500 can be trained using the setof input vectors to derive output vectors, in which the output term at atime step t-1 becomes the input term at a time step t. At each timestep, recurrent neural network model 500 can include an input term xtand an output term h_(t). As described above, in many embodiments,output term h_(t-1) at time step t-1 becomes input term xt at time stept. For example, output term h₀ at time step t=0 becomes input term x₁ attime step t=1.

During training, recurrent neural network 500 can take the training dataas input. In several embodiments, recurrent neural network 500 cancompute a sequence of hidden states (h₀, ..., h_(T)) by iteratingthrough a recurrence relation in recurrent neural network 500 for timesteps t = 0 to T. Specifically, at each time step t, recurrent neuralnetwork 500 can receive a new input, x_(t), and the long-term andworking memories of recurrent neural network 500 within LSTM cell A canbe passed on from the previous time step t-1. In many embodiments, LSTMcell A can be a suitable conventional LSTM cell. The LSTM cell A can besimilar or identical to LSTM cell A shown in FIGS. 6 and 7(a)-(d),described below.

Turning ahead in the drawings, FIG. 6 illustrates a block diagram of aportion 600 of recurrent neural network 500 for time steps t-1, t, andt+1, showing details of LSTM cell A for time step t. LSTM cell A ismerely exemplary and embodiments of the LSTM cell are not limited to theembodiments presented herein. The LSTM cell can be employed in manydifferent embodiments or examples not specifically depicted or describedherein. In many embodiments, LSTM cell A can provide a deep learningmethod that is suitable for time series data. LSTM cell A can considerhistorical data, including giving weight to historical data that is morerecent data than historical data that is less recent. As shown in FIG. 6, at each time step t, LSTM can receive input xt and generate an outputterm h_(t). Within LSTM cell A, there can be a forget gate layer, aninput gate layer, an cell state layer, and an output gate layer, thedetails of which are shown in FIGS. 7 (a)-(d), respectively, describedbelow.

Turning ahead in the drawings, FIG. 7 (a) illustrates a block diagram ofLSTM cell A with a focus on a forget gate layer of LSTM cell A. In manyembodiments, the forget gate f_(t) can be generated at time step t asfollows:

f_(t)  =   σ(W_(f)[h_(t − 1), x_(t)]  + b_(f)),

where σ is the sigmoid activation function, the W_(f) matrix representsparameters learned during training in the forget gate layer, h_(t-1)represents the hidden state from the previous time step t-1, x_(t) isthe input, and b_(f) is a bias constant for the forget gate layer.

Turning ahead in the drawings, FIG. 7(b) illustrates a block diagram ofLSTM cell A with a focus on an input gate layer of LSTM cell A. In manyembodiments, the input gate i_(t) can be generated at time step t asfollows:

i_(t) = σ(W_(i)[h_(t − 1), x_(t)] + b_(i)),

where σ is the sigmoid activation function, the W_(i) matrix representsparameters learned during training in the input gate layer, h_(t-1)represents the hidden state from the previous time step t-1, x_(t) isthe input, and b_(i) is a bias constant for the input gate layer.Additionally, an internal cell state term

_(t) can be calculated as follows:

C̃_(t) = tanh (W_(C)[h_(t − 1), x_(t)] + b_(C)),

where tanh is the hyperbolic tangent function, the W_(C) matrixrepresents parameters learned during training for the cell state in theinput gate layer, h_(t-1) represents the hidden state from the previoustime step t-1, xt is the input, and b_(i) is a bias constant for thecell state.

Turning ahead in the drawings, FIG. 7(c) illustrates a block diagram ofLSTM cell A with a focus on a cell state layer of LSTM cell A. In manyembodiments, the cell state C_(t) can be generated at time step t asfollows:

C_(t) = f_(t) × C_(t − 1) + i_(t) × C̃_(t),

where f_(t) is the forget gate, i_(t) is the input gate, C_(t-1) is thecell state for the previous time step t-1, and

C̃_(t)

is the internal cell state term.

Turning ahead in the drawings, FIG. 7(d) illustrates a block diagram ofLSTM cell A with a focus on an output gate layer of LSTM cell A. In manyembodiments, the output gate o_(t) can be generated at time step t asfollows:

o_(t)=  σ(W_(o)[h_(t − 1), x_(t)] + b_(o)),

where σ is the sigmoid activation function, the W_(o) matrix representsparameters learned during training in the output gate layer, h_(t-1)represents the hidden state from the previous time step t-1, x_(t) isthe input, and b_(o) is a bias constant for the output gate layer.Additionally, the hidden state h_(t) can be calculated as follows:

h_(t) = o_(t) × tanh (C_(t)),

where tanh is the hyperbolic tangent function, C_(t) is the cell state,and o_(t) is the output gate layer.

In many embodiments, the parameters can be learned and tuned duringtraining, based on the sequence of inputs. In several embodiments, thehistorical demand data can be represented as a set of input vectors asinput to the machine learning model. In a number of embodiments, eachinput vector of the set of input vectors can represent a demand at thephysical store for a single day in the first time period. In variousembodiments, the each input vector of the set of input vectors caninclude a set of elements each representing a number of pickups thatwere scheduled at the physical store for a different one of the pickuptime slots that occurred during the single day. For example, the inputdata for four weeks can be as shown in Tables 1-4 below, each of whichrepresents a different week from a four-week period from Aug. 26, 2018to Sep. 22, 2018, showing the demand data (e.g., number of scheduledpickups) for each of the time slots at an exemplary single physicalstore. The demand data here is not actual data from an actual physicalstore, and is provided here only for illustrative purposes. Each of thetime slots (e.g., 800) listed in Tables 1-4 represents the beginningtime of a one-hour time slot (e.g., 8 am - 9 am).

TABLE 1 Time Slot Day 8/26/18 8/27/18 8/28/18 8/29/18 8/30/18 8/31/189/⅟18 800 5 1 1 4 3 2 1 900 4 3 7 3 5 1 1 1000 6 2 2 2 6 5 3 1100 5 2 51 4 6 8 1200 2 2 5 1 4 3 3 1300 1 2 7 4 5 9 2 1400 4 1 3 2 2 4 1 1500 22 3 6 1 4 5 1600 8 4 4 3 3 9 3 1700 5 3 5 5 1 3 1 1800 1 1 0 0 6 4 21900 8 1 2 3 4 3 4

TABLE 2 Time Slot Day 9/2/18 9/3/18 9/4/18 9/5/18 9/6/18 9/7/18 9/8/18800 4 2 4 1 2 6 1 900 4 2 2 2 1 8 2 1000 7 2 0 0 7 2 1 1100 5 6 4 5 3 10 1200 1 7 1 3 5 3 1 1300 4 8 2 1 2 3 5 1400 1 2 1 3 1 4 0 1500 7 2 4 37 8 2 1600 7 2 4 5 3 10 6 1700 6 1 6 4 8 2 1 1800 0 1 2 11 4 4 0 1900 32 1 2 3 1 0

TABLE 3 Time Slot Day 9/9/18 9/10/18 9/11/18 9/12/18 9/13/18 9/14/189/15/18 800 1 1 5 6 2 6 8 900 1 1 5 1 4 1 6 1000 1 1 3 4 0 8 1 1100 7 20 4 6 3 4 1200 0 1 1 1 2 10 2 1300 1 1 1 7 6 2 9 1400 3 3 3 1 4 4 1 15001 3 5 2 2 2 4 1600 3 5 1 4 6 4 1 1700 3 3 4 7 1 1 3 1800 3 1 1 1 3 4 11900 5 4 4 5 1 1 2

TABLE 4 Time Slot Day 9/16/18 9/17/18 9/18/18 9/19/18 9/20/18 9/21/189/22/18 800 5 4 5 3 4 2 5 900 5 6 3 1 2 4 3 1000 2 7 1 0 3 1 3 1100 1 23 6 8 6 3 1200 1 3 3 4 4 4 5 1300 5 1 5 2 0 5 3 1400 3 7 3 6 6 2 2 15001 4 5 4 1 3 2 1600 7 1 2 1 6 1 2 1700 7 2 2 1 6 1 0 1800 3 3 2 7 5 1 11900 1 6 1 1 2 2 3

In many embodiments, the input xt at each time step t can be a vectorthat includes the data for the twelve time slots for a day. For example,the input at time step t=0, x₀, can be for the first day, Aug. 26, 2018,which can be a vector that includes the demand data for each time slotof the day, such as:

x₀ = [5, 4, 6, 5, 2, 1, 4, 2, 8, 5, 1, 8].

During training, the output for time step t=0 can be trained to be theinput for the following time step t=1, x₁, which can be the demand forthe following day, Aug. 27, 2018. The training can be performed with thedemand data for each of the first twenty-seven days being used as input,and the demand data for each of the last twenty-seven days being used asoutput for training, train the machine learning model. The demand datafor the first day of the four-week period can be used for input withoutbeing used for output, and the demand data for the last day of thefour-week period can be used for output training, without being used asinput.

Returning in the drawings to FIG. 4 , in a number of embodiments, method400 additionally can include a block 415 of generating, using thetrained model, a projected demand for future pickup time slots at thephysical store for a second time period. In a number of embodiments, thesecond time period can be approximately one week. In other embodiments,the first time period can be five days, ten days, fourteen days, oranother suitable amount of time for generating the projected demand. Inmany embodiments, the trained model generated in block 410 can be usedto generate the projected demand. For example, recurrent neural network500 (FIG. 5 ) can be used to generate the projected demand. In manyembodiments, the output data from the last day of the training data canrepresent the first input to the trained model after training iscomplete. The output at each time step can then be fed into the trainedmodel as input for the following time step. Each of these outputs alsocan represent the projected demand data for a day. For example, thefirst output can represent the projected demand for the next day (e.g.,Sep. 23, 2018), and each subsequent output can represent the projecteddemand for the subsequent day.

For example, the output data for four weeks can be as shown in Table 5below, which represents a one-week period from Sep. 23, 2018 to Sep. 29,2018, showing the projected demand for each of the time slots at theexemplary single physical store for the input data shown in Tables 1-4above. As in Tables 1-4, each of the time slots (e.g., 800) listed inTable 5 represents the beginning time of a one-hour time slot (e.g., 8am - 9 am).

TABLE 5 Time Slot Day 9/23/18 9/24/18 9/25/18 9/26/18 9/27/18 9/28/189/29/18 800 8 3 6 7 6 2 7 900 7 9 8 6 4 5 5 1000 2 3 6 8 3 3 3 1100 5 35 5 3 3 5 1200 4 4 5 5 5 3 6 1300 3 10 7 6 7 8 7 1400 7 4 7 3 3 3 7 15008 11 3 6 8 5 9 1600 7 8 12 5 7 5 9 1700 4 5 8 4 8 4 6 1800 3 4 6 3 4 2 41900 7 4 3 6 6 4 11

In many embodiments, the output vector at each time step t can be avector that includes the projected demand for the twelve time slots fora day. For example, the output at time step t=0 when using the trainedmodel can be the projected demand for the first day, Sep. 23, 2018,which can be a vector that includes the projected demand for each timeslot of the day, such as:

[8, 7, 2, 5, 4, 3, 7, 8, 7, 4, 3, 7].

During use of the trained model, the output for time step t=0 can thenbe used as the input for the next time step t=1, x₁, which can be usedto generate the projected demand for the following day, Sep. 24, 2018.The generation of projected demand using the trained model can proceedsimilarly for seven time steps representing the seven-day period. Inmany embodiments, the projected demand for the future time slots can begenerated before the first time slot of the future time slots occurs.For example, the projected demand for Sep. 23, 2018 to Sep. 29, 2018 canbe generated in the evening of Sep. 22, 2018, once the demand data forthe time slots of that day has been generated, or can be generated inthe morning of Sep. 23, 2018 before the first time slot occurs.

In several embodiments, method 400 further can include a block 420 ofgenerating a time-slot capacity for each of the future pickup time slotsat the physical store for the second time period based at least in parton the projected demand. In many embodiments, the time-slot capacity forthe each of the future pickup time slots can represent a maximum numberof pickups that can be scheduled within the each of the future pickuptime slots at the physical store for the second time period. In someembodiments, the maximum number of pickups for a time slot can include amaximum combined number of customer pickups and delivery pickups at thephysical store for the time slot.

In several embodiments, the projected demand generated in block 415above can be used to generate the time-slot capacity for each of thefuture pickup time slots. For example, the projected demand for each ofthe time slots in the one-week period of Sep. 23, 2018 to Sep. 29, 2018can be used to generate the time-slot capacity for each of the futuretime slots that will occur during that one-week period. In someembodiments, the time-slot capacity for each time slot can be set to theprojected demand for that time slot. In other embodiments, the time-slotcapacity for each time slot can be set to the sum of the projecteddemand for that time slot and an offset, such as 1, 2, or 3. In manyembodiments, the offset can increase the time-slot capacity above theprojected demand such that if the actual demand exceeds the projecteddemand by 1, 2, or 3, these additional pickups in the actual demand canbe scheduled for that time slot.

In several embodiments, the time-slot capacity can be generated asdescribed above, but with additional constraints, such that adjacenttime slots can change gradually. For example, the time-slot capacity foradjacent time slots can be generated such that the absolute value of thedifference between the time-slot capacities of adjacent time slots isnot more than a predetermined number, such as 2, 3, 4, 5, 6, 7, or 8,for example. Limiting the difference between adjacent timeslot-capacities can prevent drastic spikes and dips in the time-slotcapacities during the day, such that the number of employees working topick and dispense pickups can be more consistent from hour to hourduring the day.

In some embodiments, block 420 of generating a time-slot capacity foreach of the future pickup time slots at the physical store for thesecond time period based at least in part on the projected demandfurther can include generating the time-slot capacity for the each ofthe future pickup time slots at the physical store for the second timeperiod based at least in part on predetermined capacity rangeconstraints. In many cases, each of the physical stores (e.g., 360 (FIG.3 )) can have capacity range constraints, which can represent an upperbound and/or lower bound for the capacity. For example, a physical storecan have an upper bound of 20, such that the capacity cannot be setabove 20 for any time slot, and/or a lower bound of 3, such that thecapacity cannot be set below 3 for any time slot.

In various embodiments, the time-slot capacity can be generated asdescribed above, but with additional constraints, such as maintaining atotal daily slot capacity for a physical store. In other words, if thetotal capacity for the twelve time slots for the day is 60, the totalcapacity can remain at 60, despite adjusting the time-slot capacitybased on the projected demand.

In a number of embodiments, method 400 additionally can include a block425 of sending the time-slot capacities for the future pickup time slotsto the physical store. For example, the time-slot capacities generatedin block 420 can be sent to store system 361 (FIG. 3 ) of physical store360 (FIG. 3 ). In many embodiments, the time-slot capacities for thefuture pickup time slots at the physical store for the second timeperiod can be used for scheduling a number of workers for each day ofthe second time period at the physical store. For example, work shiftsduring a day can be scheduled based on the time-slot capacities for thetime slots during a day.

In several embodiments, method 400 optionally can include a block 430 ofpresenting a set of pickup time slots to a user who requests a pickupduring the second time period, based at least in part on the time-slotcapacities for the future pickup time slots. The user can be similar oridentical to user 350 (FIG. 3 ). For example, if the user requests apickup on Sep. 27, 2018, the time slots that are presented to the userto select can be based on the time-slot capacities generated in block420 for the time slots during the day. In many embodiments, whether atime slot is shown as available can be based on the capacity for thetime slot whether the number of scheduled pickups for the time slot hasreached the capacity for the time slot.

Turning ahead to next drawing, FIG. 8 illustrates a graph 800 showingtest results for automatic generation of dynamic time-slot capacityusing data from a specific physical store. Specifically, the pickuporders occurred during a five-week time frame. The data from the firstfour weeks were used to train the machine learning model, as describedabove. The trained model was then used to generate projected demand datafor the fifth week. The project demand data was used to generate newtime-slot capacities, which were compared against the originalcapacities.

FIG. 8 shows a first plot of the original capacities that were actuallyused at the store for the time slots during the day. FIG. 8 also shows asecond plot of the number of orders that occurred for each time slot.The number of orders can be considered the demand, but may not includeall of the actual demand when a time slot is fully booked, as describedabove. As shown in FIG. 8 , the time slots at 1500 and 1600 were fullybooked. FIG. 8 also shows a third plot of the new time slot capacitiesthat were generated based on the projected demand, using the techniquesdescribed herein. In this case, the time-slot capacities for the daywere generated to redistribute the original time-slot capacities, suchthat the total daily slot capacity was unchanged. As shown in FIG. 8 ,the new time-slot capacities were different from the old time-slotcapacities, and the new time-slot capacities more closely track theactual demand, while allowing a small buffer for additional demand, suchas being one order above the actual demand at many times.

Additional tests were performed using a set of 546 stores that each hada minimum of six months of online grocery pickup history data and had anaverage utilization rate of 50% to 70%, which represents the totalnumber of scheduled pickups at the store divided by the total capacityfor the store. For these stores, the fully booked rate for the slots was19.34% on average and the capacity utilization rate was 60.63% onaverage over a previous 6 month period. The techniques described hereinwere used based on the historical data to generate time-slot capacitiesfor the stores for a four-week period after the six-month period. Actualdemand data also was collected during the four-week period to determinewhether the new time-slot capacities would result in a higher number ofscheduled pickups. There were approximately 800,000 orders on average ina four week period, and the number of extra orders was 24,231 based onthe new time-slot capacities. The number of missed orders was 13,025 dueto the new time-slot capacities, which represents when the actual demandexceeded the new time-slot capacities. Overall, the new time-slotcapacities result in a sales increase of 1.41%. Additional tuning of thetime-slot capacities based on the projected demand can improveperformance of the time-slot capacities to limit the number of missedorders, while not wasting resources at the physical stores.

Returning to FIG. 3 , in several embodiments, communication system 311can at least partially perform block 405 (FIG. 4 ) of obtaininghistorical demand data for pickup time slots at a physical store for afirst time period, and/or block 425 (FIG. 4 ) of sending the time-slotcapacities for the future pickup time slots to the physical store.

In several embodiments, order system 312 can at least partially performblock 430 (FIG. 4 ) of presenting a set of pickup time slots to a userwho requests a pickup during the second time period, based at least inpart on the time-slot capacities for the future pickup time slots.

In a number of embodiments, tracking system 313 can at least partiallyperform block 405 (FIG. 4 ) of obtaining historical demand data forpickup time slots at a physical store for a first time period.

In several embodiments, demand projection system 314 can at leastpartially perform block 410 (FIG. 4 ) of training a machine learningmodel to create a trained model based on the historical demand data forthe pickup time slots over the first time period, and/or block 415 (FIG.4 ) of generating, using the trained model, a projected demand forfuture pickup time slots at the physical store for a second time period.

In a number of embodiments, capacity determination system 315 can atleast partially perform block 420 (FIG. 4 ) of generating a time-slotcapacity for each of the future pickup time slots at the physical storefor the second time period based at least in part on the projecteddemand.

In a number of embodiments, order queue system 362 can at leastpartially perform receiving the time-slot capacities sent fromcommunication system 311 (FIG. 3 ) of online grocery order system 310(FIG. 3 ) in block 425 (FIG. 4 ) of sending the time-slot capacities forthe future pickup time slots to the physical store.

In many embodiments, the techniques described herein can provide apractical application and several technological improvements. In someembodiments, the techniques described herein can provide for automaticgeneration of dynamic time-slot capacity using specific input data and amachine learning model to provide estimates in the face of uncertainconditions. These techniques described herein can provide a significantimprovement over conventional approaches of setting capacities based onsubjective estimates of projected demand, such as guesses about how manyusers will want certain time slots. Moreover, these estimates areimprovements over other possible approaches, such as setting thecapacity for each time slot the same and/or adjusting based onconsistent high or low demand. In many embodiments, the techniquesdescribed herein can beneficially make determinations based on dynamicinformation that describes current conditions and/or conditions thathave occurred during the days preceding the scheduled pickup.

In many embodiments, the machine learning model can consider the actualdemand data over time to generate projected demand estimates that moreaccurately correlate to actual demand. In many embodiments, thetechnique described herein can generate appropriate time-slot capacitieseven when there are recent surges or other unusual situations, based onthe use of recent historical data.

In a number of embodiments, the techniques described herein canadvantageously provide a consistent user experience by limiting thenumber of fully booked time slots and setting time-slot capacities thataccommodate more users at their desired time slots, in the face ofacross varying and uncertain conditions.

In many embodiments, the techniques described herein can be usedcontinuously at a scale that cannot be handled using manual techniques.For example, the number of monthly pickups at each store can exceed afew thousand.

In a number of embodiments, the techniques described herein can solve atechnical problem that arises only within the realm of computernetworks, as online grocery orders do not exist outside the realm ofcomputer networks. Moreover, the techniques described herein can solve atechnical problem that cannot be solved outside the context of computernetworks. Specifically, the techniques described herein cannot be usedoutside the context of computer networks, in view of a lack of data, andbecause the machine learning model cannot be performed without acomputer.

Various embodiments include a system. The system can include one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions configured to run on the one or moreprocessors and perform certain acts. The acts can include obtaininghistorical demand data for pickup time slots at a physical store for afirst time period. The acts also can include training a machine learningmodel to create a trained model based on the historical demand data forthe pickup time slots over the first time period. The acts additionallycan include generating, using the trained model, a projected demand forfuture pickup time slots at the physical store for a second time period.The acts further can include generating a time-slot capacity for each ofthe future pickup time slots at the physical store for the second timeperiod based at least in part on the projected demand. The acts also caninclude sending the time-slot capacities for the future pickup timeslots to the physical store.

Several embodiments can include a method. The method can be implementedvia execution of computing instructions configured to run at one or moreprocessors and stored at one or more non-transitory computer-readablemedia. The method can include obtaining historical demand data forpickup time slots at a physical store for a first time period. Themethod also can include training a machine learning model to create atrained model based on the historical demand data for the pickup timeslots over the first time period. The method further can includegenerating, using the trained model, a projected demand for futurepickup time slots at the physical store for a second time period. Themethod additionally can include generating a time-slot capacity for eachof the future pickup time slots at the physical store for the secondtime period based at least in part on the projected demand. The methodalso can include sending the time-slot capacities for the future pickuptime slots to the physical store.

Various embodiments include a system. The system can include one or moreprocessors and one or more non-transitory computer-readable mediastoring computing instructions that, when executed on the one or moreprocessors, cause the one or more processors to perform certain acts.The acts can include generating, based on a trained machine learningmodel, one or more time-slot capacities for one or more pickup timeslots at a physical store for a time period that has not yet occurred.The acts also can include, after the time period has occurred,determining when actual demand exceeded the one or more time-slotcapacities to tune the trained machine learning model.

Several embodiments can include a method. The method can be implementedvia execution of computing instructions configured to run at one or moreprocessors and stored at one or more non-transitory computer-readablemedia. The method can include generating, based on a trained machinelearning model, one or more time-slot capacities for one or more pickuptime slots at a physical store for a time period that has not yetoccurred. The method also can include, after the time period hasoccurred, determining when actual demand exceeded the one or moretime-slot capacities to tune the trained machine learning model.

Although automatic generation of dynamic time-slot capacity has beendescribed with reference to specific embodiments, it will be understoodby those skilled in the art that various changes may be made withoutdeparting from the spirit or scope of the disclosure. Accordingly, thedisclosure of embodiments is intended to be illustrative of the scope ofthe disclosure and is not intended to be limiting. It is intended thatthe scope of the disclosure shall be limited only to the extent requiredby the appended claims. For example, to one of ordinary skill in theart, it will be readily apparent that any element of FIGS. 1-8 may bemodified, and that the foregoing discussion of certain of theseembodiments does not necessarily represent a complete description of allpossible embodiments. For example, one or more of the procedures,processes, or activities of FIG. 4 may include different procedures,processes, and/or activities and be performed by many different modules,in many different orders. As another example, the systems within onlinegrocery order system 310 and/or store system 361 in FIG. 3 can beinterchanged or otherwise modified.

Replacement of one or more claimed elements constitutes reconstructionand not repair. Additionally, benefits, other advantages, and solutionsto problems have been described with regard to specific embodiments. Thebenefits, advantages, solutions to problems, and any element or elementsthat may cause any benefit, advantage, or solution to occur or becomemore pronounced, however, are not to be construed as critical, required,or essential features or elements of any or all of the claims, unlesssuch benefits, advantages, solutions, or elements are stated in suchclaim.

Moreover, embodiments and limitations disclosed herein are not dedicatedto the public under the doctrine of dedication if the embodiments and/orlimitations: (1) are not expressly claimed in the claims; and (2) are orare potentially equivalents of express elements and/or limitations inthe claims under the doctrine of equivalents.

What is claimed is:
 1. A system comprising: one or more processors; andone or more non-transitory computer-readable media storing computinginstructions that, when executed on the one or more processors, causethe one or more processors to perform: generating, based on a trainedmachine learning model, one or more time-slot capacities for one or morepickup time slots at a physical store for a time period that has not yetoccurred; and after the time period has occurred, determining whenactual demand exceeded the one or more time-slot capacities to tune thetrained machine learning model.
 2. The system of claim 1, wherein thetrained machine learning model comprises a recurrent neural networkmodel comprising a long short-term memory cell.
 3. The system of claim1, wherein the computing instructions, when executed on the one or moreprocessors, cause the one or more processors to further perform, beforegenerating the one or more time-slot capacities: training a machinelearning model to create the trained machine leaning model, based onhistorical demand data for the pickup time slots over a time period thatalready occurred, wherein: the historical demand data is represented asa set of input vectors as input to the machine learning model; and eachinput vector of the set of input vectors represents a demand at thephysical store for a single day in the time period that alreadyoccurred.
 4. The system of claim 3, wherein the time period that alreadyoccurred is approximately four weeks.
 5. The system of claim 4, whereineach input vector of the set of input vectors comprises a set ofelements each representing a number of pickups that were scheduled atthe physical store for a respective one of pickup time slots thatoccurred during the single day.
 6. The system of claim 1, wherein thecomputing instructions, when executed on the one or more processors,cause the one or more processors to further perform, before determiningwhen the actual demand exceeded the one or more time-slot capacities:presenting the one or more pickup time slots to a user who requests apickup during the time period that has not yet occurred, based on theone or more time-slot capacities.
 7. The system of claim 1, wherein theone or more time-slot capacities represents a maximum number of pickupsthat can be scheduled with each of one or more time slots at thephysical store for the time period that has not yet occurred.
 8. Thesystem of claim 7, wherein the maximum number of pickups comprises amaximum combined number of customer pickups and delivery pickups at thephysical store.
 9. The system of claim 1, wherein generating the one ormore time-slot capacities further comprises: generating the one or moretime-slot capacities based on predetermined capacity range constraints.10. The system of claim 1, wherein the one or more time-slot capacitiesare used for scheduling a number of workers at the physical store foreach day of the time period that has not yet occurred.
 11. A methodbeing implemented via execution of computing instructions configured torun at one or more processors and stored at one or more non-transitorycomputer-readable media, the method comprising: generating, based on atrained machine learning model, one or more time-slot capacities for oneor more pickup time slots at a physical store for a time period that hasnot yet occurred; and after the time period has occurred, determiningwhen actual demand exceeded the one or more time-slot capacities to tunethe trained machine learning model.
 12. The method of claim 11, whereinthe trained machine learning model comprises a recurrent neural networkmodel comprising a long short-term memory cell.
 13. The method of claim11 further comprising, before generating the one or more time-slotcapacities: training a machine learning model to create the trainedmachine leaning model, based on historical demand data for the pickuptime slots over a time period that already occurred, wherein: thehistorical demand data is represented as a set of input vectors as inputto the machine learning model; and each input vector of the set of inputvectors represents a demand at the physical store for a single day inthe time period that already occurred.
 14. The method of claim 13,wherein the time period that already occurred is approximately fourweeks.
 15. The method of claim 14, wherein each input vector of the setof input vectors comprises a set of elements each representing a numberof pickups that were scheduled at the physical store for a respectiveone of pickup time slots that occurred during the single day.
 16. Themethod of claim 11 further comprising, before determining when theactual demand exceeded the one or more time-slot capacities: presentingthe one or more pickup time slots to a user who requests a pickup duringthe time period that has not yet occurred, based on the one or moretime-slot capacities.
 17. The method of claim 11, wherein the one ormore time-slot capacities represents a maximum number of pickups thatcan be scheduled with each of one or more time slots at the physicalstore for the time period that has not yet occurred.
 18. The method ofclaim 17, wherein the maximum number of pickups comprises a maximumcombined number of customer pickups and delivery pickups at the physicalstore.
 19. The method of claim 11, wherein generating the one or moretime-slot capacities further comprises: generating the one or moretime-slot capacities based on predetermined capacity range constraints.20. The method of claim 11, wherein the one or more time-slot capacitiesare used for scheduling a number of workers at the physical store foreach day of the time period that has not yet occurred.